// coding: utf-8
// @Author : lryself
// @Date : 2020/10/21 22:13
// @Software: GoLand
// 题目： 你的朋友正在使用键盘输入他的名字name。偶尔，在键入字符c时，按键可能会被长按，而字符可能被输入 1 次或多次。
//你将会检查键盘输入的字符typed。如果它对应的可能是你的朋友的名字（其中一些字符可能被长按），那么就返回True。
// 题目url：https://leetcode-cn.com/problems/long-pressed-name/submissions/
package main

import (
	"fmt"
)

func main() {
	fmt.Println(isLongPressedName("alex","aaleelx"))
	fmt.Println(isLongPressedName("alex","aaleex"))
	fmt.Println(isLongPressedName("pyplrz","ppyypllr"))
	fmt.Println(isLongPressedName("alex","alexxr"))
}


func isLongPressedName(name string, typed string) bool {
	var ch uint8
	var i,j,n int
	for i<len(name){
		ch=name[i]
		i++
		n++
		if i>=len(name) || name[i] != ch{
			for{
				if j>=len(typed){
					if j>=len(typed) && n<=0 && i>=len(name){
						return true
					}
					return false
				}
				if typed[j]==ch{
					n--
					j++
				}else if n>0{
					return false
				}else{
					n=0
					break
				}
			}
		}
	}
	if j>=len(typed){
		return true
	}
	return false
}
